/*
7-194 随机输一次
分数 20
作者 陈越
单位 浙江大学

大家应该都会玩“锤子剪刀布”的游戏：两人同时给出手势，胜负规则如图所示：

FigCJB.jpg

现要求你编写一个控制赢面的程序，根据对方的出招，给出对应的赢招。但是！为了不让对方意识到你在控制结果，你需要隔 K 次输一次，其中 K 是系统设定的随机数。
输入格式：

输入首先在第一行给出正整数 N（≤10），随后给出 N 个系统产生的不超过 10 的正随机数 { K1​,K2​,⋯,KN​ }，数字间以空格分隔。这意味着第 i（i=0,1,⋯,N−1）次输局之后应该隔 Ki+1​ 次再让下一个输局。如果对方出招太多，则随机数按顺序循环使用。例如在样例中，系统产生了 3 个随机数 {2, 4, 1}，则你需要：赢 2 次，输 1 次；赢 4 次，输 1 次；赢 1 次，输 1 次；然后再次回到第 1 个随机数，赢 2 次，输 1 次。

之后每行给出对方的一次出招：“ChuiZi”代表“锤子”、“JianDao”代表“剪刀”、“Bu”代表“布”。“End”代表输入结束，这一行不要作为出招处理。输入保证对方至少出了一招。
输出格式：

对每一个输入的出招，按要求输出赢或输局的招式。每招占一行。
输入样例：

3 2 4 1
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
End

输出样例：

Bu
ChuiZi
ChuiZi
ChuiZi
JianDao
Bu
Bu
JianDao
ChuiZi
ChuiZi
ChuiZi
JianDao
JianDao
*/

#include <stdio.h>
#include <string.h>

void win(char* match) {
    if (strcmp("ChuiZi", match) == 0) {
        printf("Bu\n");
    } else if (strcmp("Bu", match) == 0) {
        printf("JianDao\n");
    } else {
        printf("ChuiZi\n");
    }
}

void lose(char* match) {
    if (strcmp("ChuiZi", match) == 0) {
        printf("JianDao\n");
    } else if (strcmp("Bu", match) == 0) {
        printf("ChuiZi\n");
    } else {
        printf("Bu\n");
    }
}

int main() {
    int n;
    scanf("%d", &n);
    int winCount[10] = {0};
    for (int i = 0; i < n; i++) {
        scanf("%d", &winCount[i]);
    }
    int idx = 0;
    int wins = 0;
    for (;;) {
        char match[20];
        scanf("%s", match);
        if (strcmp("End", match) == 0) {
            break;
        }
        
        if (wins >= winCount[idx]) {
            wins = 0;
            idx = (idx + 1) % n;
            lose(match);
        } else {
            wins++;
            win(match);
        }
    }
    return 0;
}